package com.jahe.learn.netty4.zerocopy;

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 老式 io 机制会使文件。使用内存拷贝的形式。
 * 磁盘 --> 系统主内存缓存 --> 应用进程的内存空间。
 * @author: jahe.lai
 * @create: 2019-12-25 19:53
 */
public class OldFileServer {

    public static void main(String[] args) throws IOException {
        ServerSocket serverSocket = new ServerSocket(8899);
        while (true) {
            Socket socket = serverSocket.accept();
            DataInputStream inputStream = new DataInputStream(socket.getInputStream());
            try {
                byte[] byteArray = new byte[4096];
                while (true) {
                    int read = inputStream.read(byteArray, 0, byteArray.length);
                    // 这里不实现文件的落盘。主要是测试文件传输时不同机制的差别。
                    if (-1 == read) {
                        break;
                    }
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
}
